'use strict';
//////////////////////////////////////////////////////////////////////////////
// 文件上传选择框 致力简单化
// =====================
// ##331053##flag
// =====================
// liuyp 2018年11月28日15: 30: 04
// liuyp 2019年1月8日10: 29: 04 翻修
//////////////////////////////////////////////////////////////////////////////
function fileup($timeout) {
    return {
        restrict: 'ACE',
        scope: { ngModel: '=', callback: '&' },
        link: function(scope, element, attr) {
            if(attr.multiple) element.attr("multiple",true);
            var setValue = function(file){
                var obj = attr.multiple ? file: file[0];
                $timeout(function(){ scope.ngModel = obj; });
                $timeout(function(){ scope.callback && scope.callback(); });
            };
            if(attr.base64) setValue = function(file){
                var reader = new FileReader();
                var obj = attr.multiple ? file: file[0];
                reader.readAsDataURL(obj);
                reader.onload = function (e) {
                    var re = this.result;
                    $timeout(function(){ scope.ngModel = re });
                    $timeout(function(){ scope.callback && scope.callback(re); });
                }
            };
            element.on('click', function() { element.val(""); });
            element.on('change', function() { setValue(this.files); });
        }
    }
}
exports = module.exports = fileup;